iT邦幫忙

2024 iThome 鐵人賽

DAY 4
0
Software Development

做一支專屬自己學校的課程評價 LINE Bot 吧!系列 第 4

[Day 04] 模組化程式設計: 淺談 Django 檔案目錄、建立 Project 與 App、啟動網站

  • 分享至 

  • xImage
  •  

Django 初次使用教學

呈上篇,我們已經用 pip install 安裝 Django 框架,用指令安裝套件總給人一種空虛感,畢竟完成後不會在桌面上產生一個新圖示。接下來我們先來啟用這個框架吧,操作以下指令前要記得先進入虛擬環境!

創立專案 Project (蓋房屋)

在 Django 的設計邏輯裡,建立 Project 像是在島中 (虛擬環境) 蓋了一間空屋子,之後的一切布置活動都會在屋子中進行:

$ django-admin startproject hulolo

hulolo 可以由使用者自訂 Project 的名稱,給你的屋子起個名字吧!不要設太長,也應避免空白,寫程式的時候命名盡可能不要有空白與中文,有可能為日後發生神奇的錯誤埋下種子

創立專案後的檔案目錄

來看看執行後發生了什麼事情,程式建立了一個名為 hulolo 資料夾、manage.py 檔案,進入 hulolo 資料夾後還發現了又一個名為 hulolo 資料夾,裡面包含數個 py 檔案:
https://ithelp.ithome.com.tw/upload/images/20240918/20151510K0d45nCLfY.png

同樣照建立屋子的邏輯,內層的同名的 hulolo 資料夾就像是屋子配電箱的功能,裡面有關於整個專案的參數設定、部署、目錄網址編輯。外層的 manage.py 則像是家門的信箱,在之後我們會介紹如何在指令中請他協助啟動網站與處理資料。總結來說,Django 建立了一個大 hulolo 與小 hulolo 資料夾,以及數個檔案。
小島🏝️有了,屋子🏠也蓋了,配電箱也裝了,信箱📬也有了,看來就欠房間跟家具了。

建立應用程式 App (分房間)

App (Application) 就像是屋子中的房間,在程式的概念中,可以想像成這個專案的各種功能,會員功能、與聊天機器人互動功能、累積點數功能、投稿評價功能等,開發者可以根據喜歡將劃分房間,這樣的思維在專案裡會用不同的資料夾分別放置。

首先我們先建立一個與聊天機器人互動的功能 App:

$ python manage.py startapp chatbot

注意到了嗎?在這邊使用了 manage.py 📬 請 Django 協助創立一個 App,這個 App 的名字可由使用者自訂,在這邊我們訂為 chatbot。另外,執行這個指令的時候記得要在與 manage.py 同一層的位置,或是也可以利用相對路徑呼叫 manage.py ,如果你對路徑概念還不熟悉,請 Google 搜尋 cd / 相對路徑 / 絕對路徑 + linux 關鍵字。

建立應用程式 App 後的檔案目錄

輸入之後會看到新資料夾的產生以及數個 Python 檔案:
https://ithelp.ithome.com.tw/upload/images/20240918/20151510OITnD39Mg9.png

Django 是許多企業所使用的框架,在大型專案中會有更多使用情境 (例如單元測試等),圖中我將本系列較少使用到的檔案,以及為了運行程式所產生的輔助檔案,都會以灰色標示,讀者只要專注深色與藍色資料夾即可。

別被很多檔案嚇到了,接下來的日子我們會聚焦在 views.pymodels.py 以及 admin.py

啟動網站吧!

其實 Django 有預設一個起始的首頁,讓使用者安裝完後,可以測試啟動網站,確認程式一切都有正常運行,輸入完以下指令後,就會啟動一個臨時網頁伺服器:

$ python manage.py runserver

成功後的訊息:

September 18, 2024 - 16:31:31
Django version 5.1.1, using settings 'hulolo.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

試著在瀏覽器網址列輸入http://127.0.0.1:8000/,看到這樣就成功啦:
https://ithelp.ithome.com.tw/upload/images/20240918/201515100XH6xMKLka.png

是的,Django 主要是拿來架設網站,搭建機器人算是其中的一小功能,一個不小心你也學會如何架設網站了呢~

何謂模組化程式設計

有沒有發現似乎啥都還沒開始,就多了一堆檔案?

這就是程式設計中非常重要的模組化 (modular programming) 觀念,上程式課時會常將所有程式碼都塞在一個檔案中,但隨著程式碼越來越多,如果所有檔案都擠在一個 py 檔案就會顯得又臭又長,且難以多人分工維護。

當每個 py 檔案都只負責其中的一小功能,就能夠好好的分門別類,甚至同時被其他程式所引用,這也是為什麼會看到一開始就會看到許多檔案的關係。 不過如果分得太碎,實務上也是很常會有迷路的問題。 在寫程式時,除了利用函式與類別減少重複性外,學會程式碼分類放置也是非常重要的好習慣!


覆盤

在這篇文章中,我們學會了:

  • 如何創立 Project
  • 如何建立 App
  • 知道 Django 的目錄檔案結構
  • 如何啟動網站
  • 何謂模組化程式設計

上一篇
[Day 03] 製作 LINE Bot 所需軟體套件及進入虛擬環境,以 Python 語言為例
下一篇
[Day 05] 獲得 LINE Bot 密鑰、建立環境變數檔與建立 ngrok 臨時公開網站
系列文
做一支專屬自己學校的課程評價 LINE Bot 吧!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言